<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
    <meta name="description" content="Draw the intersection of a volume and a photgrammetry dataset and terrain.">
    <meta name="cesium-sandcastle-labels" content="Tutorials, Showcases">
    <title>Cesium Demo</title>
    <script type="text/javascript" src="../Sandcastle-header.js"></script>
    <script type="text/javascript" src="../../../Build/CesiumUnminified/Cesium.js" nomodule></script>
    <script type="module" src="../load-cesium-es6.js"></script>
</head>
<body class="sandcastle-loading" data-sandcastle-bucket="bucket-requirejs.html">
<style>
    @import url(../templates/bucket.css);
</style>
<div id="cesiumContainer" class="fullSize"></div>
<div id="loadingOverlay"><h1>Loading...</h1></div>
<div id="toolbar"></div>
<script id="cesium_sandcastle_script">
function startup(Cesium) {
'use strict';
//Sandcastle_Begin
var viewer = new Cesium.Viewer('cesiumContainer', {
    terrainProvider: Cesium.createWorldTerrain()
});

var tileset = new Cesium.Cesium3DTileset({ url: Cesium.IonResource.fromAssetId(40866) });
viewer.scene.primitives.add(tileset);

tileset.readyPromise.then(function(){
    var boundingSphere = tileset.boundingSphere;
    viewer.camera.viewBoundingSphere(boundingSphere, new Cesium.HeadingPitchRange(0.0, -0.5, boundingSphere.radius + 500.0));
    viewer.camera.lookAtTransform(Cesium.Matrix4.IDENTITY);
});

var polygon = viewer.entities.add({
    polygon : {
        hierarchy : new Cesium.PolygonHierarchy(Cesium.Cartesian3.fromRadiansArray([-1.3194369277314022, 0.6988062530900625, -1.3193955980204217, 0.6988091578771254, -1.3193931220959367, 0.698743632490865, -1.3194358224045408, 0.6987471965556998])),
        material : Cesium.Color.RED.withAlpha(0.5),
        classificationType : Cesium.ClassificationType.BOTH
    }
});

var polyline = viewer.entities.add({
    polyline : {
        positions : Cesium.Cartesian3.fromDegreesArray([
            -75.60217330403601, 40.04102882709425,
            -75.59968252414251, 40.04093615560871,
            -75.59802015382800, 40.04079437042357,
            -75.59674934074435, 40.040816173283304,
            -75.59630042791713, 40.03986900370842,
            -75.59563636849978, 40.03930996506271,
            -75.59492397899098, 40.03873932846581,
            -75.59457991226778, 40.038392701955786,
            -75.59424838652453, 40.03775403572295,
            -75.59387104290336, 40.03677022167725,
            -75.59355000490342, 40.03588760913535
        ]),
        width : 8,
        material : new Cesium.PolylineOutlineMaterialProperty({
            color : Cesium.Color.YELLOW,
            outlineWidth : 2,
            outlineColor : Cesium.Color.BLACK
        }),
        clampToGround : true
    }
});

var classificationOptions = [{
    text : 'Classify Both',
    onselect : function() {
        polygon.polygon.classificationType = Cesium.ClassificationType.BOTH;
        polyline.polyline.classificationType = Cesium.ClassificationType.BOTH;
    }
}, {
    text : 'Classify Terrain',
    onselect : function() {
        polygon.polygon.classificationType = Cesium.ClassificationType.TERRAIN;
        polyline.polyline.classificationType = Cesium.ClassificationType.TERRAIN;
    }
}, {
    text : 'Classify 3D Tiles',
    onselect : function() {
        polygon.polygon.classificationType = Cesium.ClassificationType.CESIUM_3D_TILE;
        polyline.polyline.classificationType = Cesium.ClassificationType.CESIUM_3D_TILE;
    }
}];

var materialOptions = [{
    text : 'Red Material',
    onselect : function() {
        polygon.polygon.material = Cesium.Color.RED.withAlpha(0.5);
    }
}, {
    text : 'Textured Material',
    onselect : function() {
        polygon.polygon.material = '../images/Cesium_Logo_Color.jpg';
    }
}];

Sandcastle.addToolbarMenu(classificationOptions);
Sandcastle.addToolbarMenu(materialOptions);
//Sandcastle_End
Sandcastle.finishedLoading();
}
if (typeof Cesium !== 'undefined') {
    window.startupCalled = true;
    startup(Cesium);
}
</script>
</body>
</html>
